AWS Parallel Computing Service ログインノードにスポットインスタンスは利用可能か検証してみた

AWS Parallel Computing Service ログインノードにスポットインスタンスは利用可能か検証してみた

Clock Icon2024.09.08

AWS Parallel Computing Service は、ログインノードの安定性を重視し、オンデマンドインスタンスの使用を推奨しています。一方でコスト最適化が容易な検証環境では、スポットインスタンスの利用が魅力的な選択肢となり得ます。本記事では、ログインノードにスポットインスタンスを使用可否、その利点、および注意点を検証結果とともに紹介します。

背景

AWS Parallel Computing Service (以下 AWS PCS) の公式ドキュメントでは、ログインノードにオンデマンドインスタンスの使用を推奨しています。推奨の主な理由は、スポットインスタンスの中断リスクを回避し、安定した運用を確保するためです。

Choose on-demand purchase option to avoid having your instance(s) reclaimed.
引用: Using an AWS PCS compute node group to provide login nodes - AWS PCS

しかしながら、検証環境においてはコスト最適化の観点から、リスクを認識した上でスポットインスタンスの利用できないか探ることにしました。

発端

AWS PCS のリリース時、ログインノードのスポット起動を試みた際に、以下のエラーメッセージが CloudTrail で確認されました。

Request would have succeeded, but DryRun flag is set.

このエラーにより、スポット指定ではインスタンスが起動できないように思われました。しかし、その後にオンデマンド起動を試みた際も同様のエラーメッセージが確認されました。この結果を受け、ログインノードのスポット起動が実際に可能かどうかを改めて調査することにしました。

以下は、CloudTrail で確認されたログの一部です。

イベントの詳細_-_CloudTrail-3

抜粋
    "eventTime": "2024-09-07T03:18:40Z",
    "eventSource": "ec2.amazonaws.com",
    "eventName": "CreateFleet",
    "awsRegion": "ap-northeast-1",
    "sourceIPAddress": "pcs.amazonaws.com",
    "userAgent": "pcs.amazonaws.com",
    "errorCode": "Client.DryRunOperation",
    "errorMessage": "Request would have succeeded, but DryRun flag is set.",
    "requestParameters": {
        "CreateFleetRequest": {
            "TargetCapacitySpecification": {
                "DefaultTargetCapacityType": "spot",
                "TotalTargetCapacity": 1
            },

検証結果

コンピュートノードグループから起動するログインノードにスポットインスタンスの利用が可能であることを確認しました。

検証してみた

スポットインスタンスを使用したログインノードの動作を検証するため、以下の手順を実施しました。

ログインノード作成

  1. コンピュートノードグループを作成
  2. 静的スケーリング構成を設定
    • 最小・最大インスタンス数: 1(固定)
    • 常時 EC2 1 台が起動する構成
  3. 購入オプション
    • スポットインスタンスを指定

Parallel_Computing_Service

ログインノードとコンピュートノードの区別方法

コンピュートノードグループからログインノードを作成する場合の Tips です。

  1. コンピュートノード

    • キューを紐づける
    • Slurm のパーティションとして認識され、計算処理を実行可能
  2. ログインノード

    • キューを紐づけない
    • システムへのアクセスポイントとして機能し、ジョブの投入や管理操作を行う

動作確認

EC2 の起動状況を確認しました。スポットインスタンスで起動できました。 セッションマネージャーで接続後、Slurm の各種コマンドも実行可能でした。

インスタンス___EC2___ap-northeast-1-12

ログインノードはスポットインスタンス起動可能でした。

まとめ

本検証を通じて、以下の点がわかりました。

  1. AWS PCS 環境でログインノードにスポットインスタンス起動は可能

  2. コスト最適化とリスクのバランス

    • コスト削減に効果的だが、以下のリスクを考慮する必要がある
      • インスタンスの予期せぬ中断の可能性
      • システムの可用性と安定性への影響
  3. 環境に応じた適切な選択

    • 検証環境: コスト削減を優先する場合、スポットインスタンスの利用は検討の余地あり
    • 本番環境: 安定性と可用性を重視し、オンデマンドインスタンスの利用を推奨

おわりに

AWS PCS はマネージドサービスとして提供され、便利な一方で比較的高価なサービスです。PCS の全体コストを抑えるため、検証用途のログインノードにはすでに安価な T 系インスタンスを採用しています。しかし、「できる限りのコスト削減できないか」という観点から、スポットインスタンスの使用可否を検証しました。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.